<?php
class LocalController extends BaseController{
    
	function loadAction(){
    	$local = new LocalEvento();
   		$id_local = (int)$this->_request->getParam('id_local');
		$ajaxRequest = (int)$this->_request->getParam('ajaxRequest'); 	
    	
    	if ($id_local>0){
			$local->load($id_local);
		}		
		if ($ajaxRequest==1){	
			$this->_helper->viewRenderer->setNoRender();
			Zend_loader::loadClass("Zend_Json");
			$objJson = Zend_Json::encode($local);	 
	        // coloca na camada de visao o objeto jSon   
	        $this->_response->appendBody($objJson);
		}
		return $local; 	    	
    }
    
    function salvarAction(){
    	if ($this->_request->getPost('ajaxRequest')==1){
    		$this->_helper->viewRenderer->setNoRender();
    	}
    	$local = new LocalEvento();
    	$local->populate($this->_request->getPost());
        $local->id_usuario 		= $this->authNamespace->id_usuario;
        $local->dt_alteracao 	= date('Y-m-d H:m:s');
        $local->salvar();
        return $local;
    }
   
	function addAction(){
    	$this->view->linkManual = "/bntmercosul/public/manual/manual_cadastro_local.html";
    	$authNamespace = new Zend_Session_Namespace('Zend_Auth');
        $this->view->title = "Novo local";
        if (strtolower($_SERVER['REQUEST_METHOD']) == 'post'){
        	$filter = new Zend_Filter_StripTags();
        	$local = new LocalEvento();
        	$local->id_local 		= null;
        	$local->ds_local 		= trim($filter->filter($this->_request->getPost('local')));
        	$local->ds_endereco  	= trim($filter->filter($this->_request->getPost('endereco')));
        	$local->ds_numero 		= trim($filter->filter($this->_request->getPost('numEnd')));
        	$local->ds_complemento 	= trim($filter->filter($this->_request->getPost('complemento')));
        	$local->ds_bairro 		= trim($filter->filter($this->_request->getPost('bairro')));
        	$local->ds_caixa_postal	= trim($filter->filter($this->_request->getPost('caixaPostal')));
        	$local->id_cidade 		= (int) $this->_request->getPost('cidade');
        	$local->id_estado 		= (int) $this->_request->getPost('estado');
        	$local->id_usuario 		= $authNamespace->id_usuario;
        	$local->dt_alteracao 	= date('Y-m-d H:m:s');
        	$local->salvar();

        	$operacao = "Novo local";
        	$mensagem = "Local cadatrado com sucesso!";
        	$links = array(array('link'=>$this->view->baseUrl ."/evento/add" , 'descricao'=>"Cadastrar evento"),
        	               array('link'=>$this->view->baseUrl ."/local" , 'descricao'=>"Listar locais"));

        	$this->_forward('status', 'util', null,
                            array('operacao'=>$operacao,
                           		  'mensagem'=>$mensagem,
                                  'links'=>$links));
        	return;
        } else{
        	$authNamespace = new Zend_Session_Namespace('Zend_Auth');
        	$this->view->local = new stdClass();
        	$this->view->local = new LocalEvento();
			$this->view->local->id_local = null;
			$this->view->action = 'add';
			$this->view->buttonText = 'Adicionar';
			$this->render();
        }
    }    
    
	function editAction(){
		$this->view->linkManual = "/manual/manual_editar_local.html";
		$this->view->title = "Alterar local";
		$local=$this->load();
		if (strtolower($_SERVER['REQUEST_METHOD']) == 'post'){
			$local = $this->salvar();
        	$operacao = "Alterar local";
        	$mensagem = "Local alterado com sucesso!";
        	$links = array(array('link'=>$this->view->baseUrl ."/evento/add" , 'descricao'=>"Cadastrar evento"),
        	               array('link'=>$this->view->baseUrl ."/local" , 'descricao'=>"Listar locais"));

        	$this->_forward('status', 'util', null,
                             array('operacao'=>$operacao,
                             'mensagem'=>$mensagem,
                             'links'=>$links));
        	return;
		} else {
			$this->view->local = $local;
			$this->view->action = 'edit';
			$this->render();
		}
	}

	function indexAction(){
		$this->view->linkManual = "/bntmercosul/public/manual/manual_consulta_local.html";
		$authNamespace = new Zend_Session_Namespace('Zend_Auth');
		$filter = new Zend_Filter_StripTags();
       	$nome = "";
       	$idEstado = 0;
       	$idCidade = 0;
       	$order = "1";
       	$asc = 0;
        $this->view->title = "Consultar local";
        $this->view->action = $this->view->baseUrl . '/local/index';
		$this->view->parametrosConsulta = $this->view->baseUrl . "/local/index";
		$this->view->local = new stdClass();
		$local = new LocalEvento();
		$this->view->local = $local;
		if ((strtolower($_SERVER['REQUEST_METHOD']) == 'post') ||
		    ((int)$this->_getParam("order"))){

        	if (strtolower($_SERVER['REQUEST_METHOD']) == 'post'){
        		$nome = trim($filter->filter($this->_request->getPost('nome')));
          		$idEstado = (int)$this->_request->getPost('estado');
        		$idCidade = (int)$this->_request->getPost('cidade');
       		}
       		else {
        		$nome = trim($filter->filter($this->_getParam('nome')));
        		$idEstado = (int)$this->_getParam('estado');
       		 	$idCidade = (int)$this->_getParam('cidade');
       		 	$order = (int)$this->_getParam('order');
       	 		$asc = trim($filter->filter($this->_getParam('asc')));
       		}
   			$this->view->dadosConsulta = $local->buscar($nome, $idCidade, $idEstado, $order, $asc);
			$this->view->local->ds_local  = $nome;
			$this->view->local->id_estado = $idEstado;
			$this->view->local->id_cidade = $idCidade;

		   	if (count($this->view->dadosConsulta) == 0){
				UtilController::alert("Dados não encontrados para a pesquisa realizada.");
			}
			if ($nome != "")
    	    	$this->adicionaParametros("nome",$nome);
        	if ($idEstado)
        		$this->adicionaParametros("idEstado", $idEstado);
			if ($idCidade)
				$this->adicionaParametros("idCidade", $idCidade);
			$this->view->ordemAtual=$order;
			$this->view->asc=$asc;
			$this->view->parametrosConsulta .= $this->parametrosConsulta;
		} else {
			$this->view->local->ds_local = "";
			$this->view->local->id_estado = null;
			$this->view->local->id_cidade = null;
			$this->view->dadosConsulta = null;
		}

		$this->render();
    }

    function excluirAction(){
    	$id_local = (int)$this->_getParam('id_local');
		$ajaxRequest = (int)$this->_getParam('ajaxRequest');
		if ($id_local > 0){
    		$local = new LocalEvento();
			$local->excluir($id_local, $this->authNamespace->idUsuario);		
		}
		if ($ajaxRequest==1) {
			$this->_helper->viewRenderer->setNoRender();
		}else{
			$operacao = "Excluir Local Evento";
        	$mensagem = "Local excluido com sucesso!";
        	$links = array(array('link'=>$this->view->baseUrl ."/local/add" , 'descricao'=>"Cadastrar Local Evento"),
        	               array('link'=>$this->view->baseUrl ."/local" , 'descricao'=>"Listar Local"));
        	$this->_forward('status', 'util', null,
                            array('operacao'=>$operacao,
                           		  'mensagem'=>$mensagem,
                                  'links'=>$links));
            return;
		}
	}

}